// 
// namespace WXB
// {
// 	public struct Rect
// 	{
//         public static Rect hugely = new Rect(0, 0, 99999, 99999);
// 
// 		public Rect(float left, float top, float right, float bottom)
// 		{
// 			d_left = left;
// 			d_top = top;
// 			d_right = right;
// 			d_bottom = bottom;
// 		}
// 
// 		public Rect(Rect rect)
// 		{
// 			d_left = rect.d_left;
// 			d_top = rect.d_top;
// 			d_right = rect.d_right;
// 			d_bottom = rect.d_bottom;				 
// 		}
// 
// 		public Rect(Point pos, Size sz)
// 		{
// 			d_left = pos.d_x;
// 			d_right = pos.d_x + sz.d_width;
// 
// 			d_top = pos.d_y;
// 			d_bottom = pos.d_y + sz.d_height;
// 		}
// 
// 		public Point getCenterPoint()
// 		{
// 			return new Point(d_left + getWidth() / 2, d_top + getHeight() / 2);
// 		}
// 
// 		public Point getPosition()
// 		{
// 			return new Point(d_left, d_top);
// 		}
// 
// 		public float getWidth()
// 		{
// 			return d_right - d_left;
// 		}
// 
// 		public float getHeight()
// 		{
// 			return d_bottom - d_top;
// 		}
// 
// 		public Size getSize()
// 		{
// 			return new Size(getWidth(), getHeight());
// 		}
// 
// 		public void setPosition(Point pt)
// 		{
// 			Size sz = getSize();
// 			d_left = pt.d_x;
// 			d_top  = pt.d_y;
// 			setSize(sz);
// 		}
// 
// 		public void setWidth(float width)
// 		{
// 			d_right = d_left + width;
// 		}
// 
// 		public void setHeight(float height)
// 		{
// 			d_bottom = d_top + height;
// 		}
// 
// 		public void setSize(Size sze)
// 		{
// 			setWidth(sze.d_width);
// 			setHeight(sze.d_height);
// 		}
// 
// 		public Rect getIntersection(Rect rect)
// 		{
// 			// check for total exclusion
// 			if ((d_right > rect.d_left) &&
// 				(d_left < rect.d_right) &&
// 				(d_bottom > rect.d_top) &&
// 				(d_top < rect.d_bottom))
// 			{
// 				Rect temp;
// 
// 				// fill in temp with the intersection
// 				temp.d_left = (d_left > rect.d_left) ? d_left : rect.d_left;
// 				temp.d_right = (d_right < rect.d_right) ? d_right : rect.d_right;
// 				temp.d_top = (d_top > rect.d_top) ? d_top : rect.d_top;
// 				temp.d_bottom = (d_bottom < rect.d_bottom) ? d_bottom : rect.d_bottom;
// 
// 				return temp;
// 			}
// 			else
// 			{
// 				return new Rect(0.0f, 0.0f, 0.0f, 0.0f);
// 			}
// 		}
// 
// 		public Rect offset(Vector2 pt)
// 		{
//             return offset(pt.d_x, pt.d_y);
// 		}
// 
//         public Rect offset(Point pt)
//         {
//             return offset(pt.d_x, pt.d_y);
//         }
// 
//         public Rect offset(float x, float y)
//         {
//             d_left += x;
//             d_right += x;
// 
//             d_top += y;
//             d_bottom += y;
//             return this;
//         }
// 
// 		public bool isPointInRect(Point pt)
// 		{
// 			if ((d_left > pt.d_x) || (d_right <= pt.d_x) || (d_top > pt.d_y) || (d_bottom <= pt.d_y))
// 			{
// 				return false;
// 			}
// 
// 			return true;
// 		}
// 
// 		public Rect constrainSizeMax(Size sz)
// 		{
// 			if (getWidth() > sz.d_width)
// 			{
// 				setWidth(sz.d_width);
// 			}
// 
// 			if (getHeight() > sz.d_height)
// 			{
// 				setHeight(sz.d_height);
// 			}
// 
// 			return this;
// 		}
// 
// 		public Rect constrainSizeMin(Size sz)
// 		{
// 			if (getWidth() < sz.d_width)
// 			{
// 				setWidth(sz.d_width);
// 			}
// 
// 			if (getHeight() < sz.d_height)
// 			{
// 				setHeight(sz.d_height);
// 			}
// 
// 			return this;
// 		}
// 
// 		public Rect constrainSize(Size max_sz, Size min_sz)
// 		{
// 			Size curr_sz = getSize();
// 
// 			if (curr_sz.d_width > max_sz.d_width)
// 			{
// 				setWidth(max_sz.d_width);
// 			}
// 			else if (curr_sz.d_width < min_sz.d_width)
// 			{
// 				setWidth(min_sz.d_width);
// 			}
// 
// 			if (curr_sz.d_height > max_sz.d_height)
// 			{
// 				setHeight(max_sz.d_height);
// 			}
// 			else if (curr_sz.d_height < min_sz.d_height)
// 			{
// 				setHeight(min_sz.d_height);
// 			}
// 
// 			return this;
// 		}
// 
// 		public float d_top, d_bottom, d_left, d_right;
// 	};
// }